5.1.1读取和导出shp和栅格文件

读取shp文件
##读取shp文件及绘制shp文件;
## use rgdal::readOGR or sf::st_read 
library(rgdal)
rgdaltest<-readOGR('./国家基础地理信息系统SHP文件/国界/bou1_4p.shp')
plot(rgdaltest)

### 需要说明是shp文件,可以使用forify()将读取的shp转为数据框形式,在其他绘土R包(如ggplot2)中使用;
library(ggplot2) ## 注意是ggplot2::fortify
vienna_bor <-fortify(bordervienna)# ggplot可以处理数据框
ggplot(data = vienna_bor,aes(x = long,y = lat,group = group))+
geom_path(size= 0.9)


p <- shapefile(system.file("external/lux.shp", package="raster"))

##读取单个栅格文件
## 基于rgdal包
library(rgdal)
data<-readGDAL("data/UpperBondary/Babaohe_Booundary.img")
data<-readGDAL("data/UpperBondary/Babaohe_Booundary.tif")
## 基于raster包;
library(raster)
data = raster("./hh.tif")
##读取asc文件及绘图
shange2=read.asciigrid('rasterTest/test.txt')
shange2=read.asciigrid('rasterTest/test.asc')
plot(rastershange2)
构筑shp网格
## 已知分布区范围的情况:
sp.r1 <- rasterToPolygons(raster(xmn = 100, xmx = 125,
                                 ymn = 20, ymx = 40,
                                 resolution = 3))
library(maptools)
data(wrld_simpl)
library(rgeos)
polygone1 <- gBuffer(sp.r1, byid=TRUE, width=0)
polygone2 <- gBuffer(wrld_simpl, byid=TRUE, width=0)
clip2 <- rgeos::gIntersection(polygone1, polygone2, byid=TRUE, drop_lower_td = TRUE)
plot(clip2)
导出shp、raster文件
##导出shp文件
##fn:shapefile layer name, when writing omitting the extensions *.shp, *.shx and *.dbf;
## readShapeSpatial {maptools}
writeSpatialShape(x, fn, factor2char = TRUE, max_nchar=254)
## 使用matools会得到提示:
writeSpatialShape is deprecated; use rgdal::writeOGR or sf::st_write 
# 使用raster:
library(raster)
shapefile(x = TwoPolys, file = "path/to/output/file.shp")

## 导出数据的方法:
zk_area <- frange(zk)
crs.geo <- CRS("+proj=longlat +ellps=WGS84 +datum=WGS84")  
proj4string(zk_area ) <- crs.geo  
library(rgdal)
zk_area<- spTransform(zk_area, CRS("+proj=longlat +ellps=WGS84 +datum=WGS84"))

## 将SpatialPolygons  to SpatialPolygonsDataFrame
df <- data.frame(ID=character(), stringsAsFactors=FALSE )
for (i in zk_area@polygons ) { df <- rbind(df, data.frame(ID=i@ID, stringsAsFactors=FALSE))  }
row.names(df) <- df$ID
zk_area <- SpatialPolygonsDataFrame(zk_area, df)

plot(zk_area)
## 注意这里的参数分别为:需要导出的文件名;图层路径、导出姓名;格式;
writeOGR(zk_area, "./ll.shp",layer="ll" , driver="ESRI Shapefile")



##导出栅格文件
## writeRaster {raster}
writeRaster(tmin1.c, filename = "tmin1.c.grd")
writeRaster(tmin.all.c, filename = "tmin.all.grd")

results matching ""

    No results matching ""